// 用户实体类
// author: Xavier
package entity

import "admin_go_api/common/util"

type SysAdmin struct {
	ID uint `gorm:"column:id;comment:'主键';NOT NULL" json:"id"`
	// ID
	PostId uint `gorm:"column:post_id;comment:'岗位ID';" json:"postId"`
	// 岗位ID
	DeptId uint `gorm:"column:dept_id;comment:'部门ID';" json:"deptId"`
	// 部门ID
	Username string `gorm:"column:username;varchar(64);comment:'用户账号';NOT NULL" json:"username"`
	// 用户名
	Password string `gorm:"column:password;varchar(64);comment:'密码';NOT NULL" json:"password"`
	// 密码
	NickName string `gorm:"column:nick_name;varchar(64);comment:'昵称';" json:"nickName"`
	// 昵称
	Status uint `gorm:"column:status;default:1;comment:'账号启用状态:1-启用,2-禁用';NOT NULL" json:"status"`
	// 状态
	Icon string `gorm:"column:icon;varchar(500);comment:'用户头像';" json:"icon"`
	// 用户头像
	Email string `gorm:"column:email;varchar(64);comment:'用户邮箱';" json:"email"`
	// 用户邮箱
	Phone string `gorm:"column:phone;varchar(32);comment:'用户手机号';" json:"phone"`
	// 用户手机号
	Note string `gorm:"column:note;varchar(500);comment:'备注';" json:"note"`
	// 备注
	CreateTime util.HTime `gorm:"column:create_time;comment:'创建时间';NOT NULL" json:"createTime"`
}

func (SysAdmin) TableName() string {
	return "sys_admin"
}

//鉴权用户结构体
type JwtAdmin struct {
	ID       uint   `json:"id"`       //用户ID
	Username string `json:"username"` //用户名
	NickName string `json:"nickName"` //昵称
	Icon     string `json:"icon"`     //头像
	Email    string `json:"email"`    //邮箱
	Phone    string `json:"phone"`    //手机号
	Note     string `json:"note"`     //备注
}

//登录对象
type LoginDto struct {
	Username string `json:"username" binding:"required"`           //用户名
	Password string `json:"password" binding:"required"`           //密码
	Image    string `json:"image" validate:"required,min=4,max=6"` //图片验证码
	Idkey    string `json:"idkey" validate:"required"`             //UUID
}
